package com.ktgj.customer.service;

import java.util.List;

import com.ktgj.customer.domain.Itinerary;
import com.ktgj.customer.domain.ItineraryMiddle;
import com.ktgj.customer.domain.vo.*;

import javax.servlet.http.HttpServletRequest;

/**
 * 行程定制业务中间Service接口
 * 
 * @author ruoyi
 * @date 2021-09-01
 */
public interface IItineraryMiddleService 
{
    /**
     * 查询行程定制业务中间
     * 
     * @param primaryKeyId 行程定制业务中间ID
     * @return 行程定制业务中间
     */
    public ItineraryMiddle selectItineraryMiddleById(Long primaryKeyId);

    /**
     * 查询行程定制业务中间列表
     * 
     * @param itineraryMiddle 行程定制业务中间
     * @return 行程定制业务中间集合
     */
    public List<ItineraryMiddle> selectItineraryMiddleList(ItineraryMiddle itineraryMiddle);

    /**
     * 新增行程定制业务中间
     * 
     * @param itineraryMiddle 行程定制业务中间
     * @return 结果
     */
    public int insertItineraryMiddle(ItineraryMiddle itineraryMiddle);

    /**
     * 修改行程定制业务中间
     * 
     * @param itineraryMiddle 行程定制业务中间
     * @return 结果
     */
    public int updateItineraryMiddle(ItineraryMiddle itineraryMiddle);

    /**
     * 批量删除行程定制业务中间
     * 
     * @param primaryKeyIds 需要删除的行程定制业务中间ID
     * @return 结果
     */
    public int deleteItineraryMiddleByIds(Long[] primaryKeyIds);

    /**
     * 删除行程定制业务中间信息
     * 
     * @param primaryKeyId 行程定制业务中间ID
     * @return 结果
     */
    public int deleteItineraryMiddleById(Long primaryKeyId);

    /**
     * 订单加入行程
     * */
    public int addItineraryMiddle(ItineraryMiddleVo itineraryMiddleVo) throws Exception;

    /**
     * 查看行程
     * */
    public ItineraryOrderVo selecItineraryMiddle(Long itineraryCustomizeId) throws Exception;

    /**
     * 移除行程中的订单
     * */
    public int delItineraryMiddle(Long primaryKeyId);

    /**
     * 行程列表
     * */
    public TmpItineraryVo journeyList(HttpServletRequest request) throws Exception;
}